The ubiquity of the Personal Computer (PC) and their associated human interface devices (HID) is familiar to nearly everyone. The most common HID, the computer mouse, takes many forms from the single button to multi-button types to joysticks or rollerballs all which serve the similar purpose of translating a human motion into a computer understandable event. A mouse event is defined here as any human to mouse interaction which results in an electrical signal being passed from the mouse to the host computer. Examples of mouse events include but are not limited to a mouse button click and release, a mouse button click and hold, a scroll wheel click, or a scroll wheel click and hold. It is important to note the terms “mouse” and “HID” are used interchangeably in the remainder of this disclosure are intended to represent any generalized hand operated computer HID.
Communication between the mouse and its host is dictated by convention, formalized by industry standards and protocols. Industry standards establish a common language and set of rules to which a computer peripheral must adhere to guarantee proper operation. Examples of mouse protocols are the legacy PS2 synchronous protocol and the more recent HID USB device class protocols. These protocols define and establish conventions for the fundamental building blocks of serial commination which are serial data frames and packets.
An elemental purpose of the mouse protocol is to force consistency and predictability in the frames and packets sent by a mouse to a host in response to mouse events. As such the protocols must include a mouse event to data frame “mapping” which manifests as a unique frame or packet for each possible mouse event. This mapping ensures that, for example, a left button mouse click is interpreted as a left mouse click by a compatible host. Each mouse HID input (button, trigger, knob, etc.) has an associated unique event signature in the form of a unique data frame or packet.
The explosion in PC popularity has been closely mirrored by the popularity of computer gaming. Some games are written to accommodate the use of specialty, enthusiast gaming HIDs which greatly increase the number of potential unique event signatures by including more HID inputs. The vast majority of computer games, though, are controlled with the far more common two or three button type mouse. As such the number of HID inputs and thus unique event signatures available are necessarily limited. The innovation disclosed here serves to increase the number of unique event signatures and mouse events patterns by manipulating mouse events to produce novel mouse events. This manipulation occurs by the way of intermediate hardware inserted between a computer mouse and a host computer.
In its most rudimentary embodiment this intermediate hardware takes the form of a USB host emulator used to accept mouse write frames, followed by control electronics to manipulate or duplicate the mouse frames to produce novel mouse events in a manner dictated by additional hardware inputs (switches, knobs, buttons, etc.), followed by a USB slave emulator to write the novel mouse events to the host computer. This innovation will heretofore be referenced by the acronym ICID (Intermediate Computer Interface Device).
The ICID increases the number of possible unique event signatures by allowing mouse HIDs to perform multiple functions depending on the state of the ICID additional hardware inputs. For example a mouse click and hold can produce different frame data and thus different host outcome depending on the state of an ICID mechanical input.
A potential ICID benefit is to circumvent human physiological limitations of computer game play. Humans are not physically capable of clicking a mouse button 200 times a second which represents the maximum allowable rate per the USB HID class protocol. It is easy to recognize the utility of passing the game player's burden of creating rapid, repeating mouse events over to ICID hardware. The ICID can map a single mouse event into novel mouse events for instance, a repeating pattern of mouse events whose frequency and duration is dictated by the ICID additional hardware inputs.
An example ICID embodiment is a small box interposed between a PC and a mouse via USB cables having two HID inputs allocated for each mouse button (for a total of 6 HID inputs) where one input defines mouse event mapping and the other the move event repeat frequency.